1. Field of the Invention
The present invention relates to a sequence estimation method and a sequence estimator for estimating a transmitted signal sequence at a receiving side, and more particularly to, a Viterbi equalization method or a Viterbi decoding method, based on a received signal and characteristic of a channel, or a coding rule in a digital data transmission system such as a car cellular telephone.
2. Description of the Prior Art
Usually, in a digital data transmission, a transmitted signal from a transmission side can not be properly received at a receiving side due to a state of the channel or noise, but the transmitted signal is received in a converted form due to the state of the channel or the noise. A model for the converted signal on the channel is depicted in FIG. 16. As depicted in FIG. 16, the input signal is delayed on the channel and combined with a noise. Accordingly, if the transmitted signal is Ik, a received signal rk is expressed by the following formula (1).                               r          k                =                                            ∑                              i                =                0                            L                        ⁢                                          c                i                            ⁢                              I                                  k                  -                  i                                                              +                      W            k                                              (        1        )            
Where, “L” represents a memory length of the channel making the transmitted signal delay, “ci” represents a tap coefficient and “Wk” represents a noise component. The tap coefficient and the noise component are determined by a characteristic of the channel. If the tap coefficient is read as a decoding rule, the tap coefficient works as a Viterbi decoding. A receiver receives a received signal rk and the received signal is estimated by this received signal rk and the tap coefficient ci. A receiver (a sequence estimator) calculates an estimated value (hereinafter, referred to as “replica”) of a received signal by convoluting a candidate of a transmitted signal and a known tap coefficient as in formula (2).                               r          k          e                =                              ∑                          i              =              0                        L                    ⁢                                    c              i                        ⁢                          I                              k                -                i                            e                                                          (        2        )            
Furthermore, the sequence estimator calculates an error power between an actual received signal and the replica of the received signal calculated from formula (2).                                           ∑            k                    ⁢                                                                  e                k                                                    2                          =                              ∑            k                    ⁢                                                                                    r                  k                                -                                  r                  k                  e                                                                    2                                              (        3        )            
The sequence estimator searches a candidate of the transmitted signal having a smallest error power calculated from formula (3), and estimates it as a transmitted signal. Processing of the sequence estimation is explained when the memory length L of the channel is expressed as L=2. FIG. 17 shows a suitable model of the sequence estimator when the memory length L of the channel is 2. The sequence estimator is configured as to reproduce a model similar to that of the channel. An additional device for applying the noise is not necessary for this sequence estimator among the channel models of the channel.
The sequence estimator includes a memory having a memory length the same as that of the channel which receives an estimated value of the transmitted signal, a multiplication device for multiplying the estimated value of the transmitted signal output from the memory by a predetermined tap coefficient, a summing device for calculating a replica of a received signal by summing the multiplied values obtained by the multiplication device, a difference calculation device for calculating the difference between the replica of the received signal output from the summing device and an actual reception signal, and a square summing device for summing the square values output from the difference calculation device. The predetermined tap coefficient set to the multiplication device is the same as the tap coefficient obtained from a characteristic of the channel.
A method for a maximum-likelihood detection according to such a sequence estimator is explained. First, a candidate of the transmitted signal having the transmission sequence length N is received. This candidate of the transmitted signal is input to the memory of the sequence estimator. The multiplication device multiplies each signal output from the memory by tap coefficients C1 and C2. It also multiplies a tap coefficient C0 by the input signal which does not pass through the memory. The summing device obtains a replica of the received signal by summing all values multiplied by the multiplication device. The difference calculation device obtains the difference between the actual received signal and the replica of the received signal obtained from the summing device.
The square summing device sums the square of the difference value output from the difference calculation device. The square summing device provides a sum of the difference value by summing the sum of the square of the difference between the received signal and the replica of the received signal for all signal sequences. The number of candidates of this transmitted signal is 2N when the length of the transmission sequence is N, and all candidates are processed as stated above. A maximum-likelihood detecting device estimates a candidate of the transmitted signal as a transmitted signal when the square sum provided by the square summing device is smallest.
In case of the maximum-likelihood detection, an operation amount increases in proportion to the exponent of the transmission sequence length N. So the maximum-likelihood detection using a Viterbi algorithm is adopted. The details of the Viterbi algorithm are described in the paper “The Viterbi algorithm”, G. D. Forney, Jr., Proc. IEEE, vol.61, No.3, pp. 268–278, March 1973. In case of the channel model of FIG. 18, an error power at a time k can be calculated by knowing transmitted data at the time k and transmitted data at the preceding time (k−2). The maximum-likelihood detection using the Viterbi algorithm uses a figure showing data transition information (hereinafter, referred to as a “trellis diagram”) obtained from the combination of data between two times as shown in FIG. 19.
In this trellis diagram of FIG. 19, the combination of data between two times is connected with a line considering the following characteristic. The characteristic is expressed as follows. For example, if a signal stored in a memory at certain time shows a state “00”, the state transits to any one of a state “10” or a state “00” at a next time, however, it never transits to a state “01” or a state “11”. It is because that when a shift resistor of a state “000” is shifted one time, only “000” or “100” is provided. Accordingly, upon connecting a combination of data between two times with a line, it is assumed that the state “00” and the state “10”, and the state “00” and the state “00” are connected with lines, respectively. However, the state “00” and the state “01”, and the state “00” and the state “11” are not connected with lines, respectively.
In this way, a trellis diagram is formed considering the characteristic of the transition. In FIG. 19, a combination connected with a line has a possibility of transition and a combination not connected with a line has no possibility of transition. A line showing the transition of the state is referred to as a branch hereinafter. The trellis diagram has solid lines and dotted lines. The solid line means that a signal 0 is input and the state transits, while the dotted line means that a signal 1 is input and the state transits. A combination of data across three times can be decided by connecting a combination of data between two times with a line as shown in the trellis diagram of FIG. 19. The error power can be obtained using such a trellis diagram.
Processing of a Viterbi algorithm using such a trellis diagram is explained in detail. When the memory length of the channel is L, the number of states is expressed as 2L. In other words, the number of states increases in proportion to exponent of the memory length L of the channel. An operation amount increases corresponding to the number of states. While the sequence estimator of FIG. 16 searches candidates for all signals, the Viterbi algorithm can decrease the number of processing steps for searching them. FIG. 20 shows a process of the Viterbi algorithm at each time. Hereinafter, a state x x of time k is described as “s [k, x x]”, and a route which has a state x x at time k1 and transits to a state # # is expressed as “s [k1, x x]/[k2, # #]”.
(1) A square error for each branch (a line segment of FIG. 19) is calculated. This square error for each branch is referred to as a branch metric. For example, a branch connecting a state s [0, 00] and a state s [1,00] means that data across three times are [000]. Respective data are multiplied by a tap coefficient, and a difference between the multiplied result and the actual received signal is calculated, and the differential result is squared to calculate a square error. In this way, the square errors are calculated for all branches.
(2) A path for reaching a state at a certain time (“00”, “10”, “01” and “11” of FIG. 19) is extracted. A path-metric is calculated by accumulating the branch metrics of the branches constructing the extracted paths. The path-metric is calculated for all paths of all states. For example, there are two paths reaching a state s [2,00], namely a path s [0,00]/s, [s[1,00]/s [2,00] and a path s [0,11]/s 1,01]/s [2,00]. The path-metric is calculated for these two paths.
(3) Path-metrics of a plurality of paths which are extracted for each state are compared to each other. This comparison is carried out for all states.
(4) As a result of the comparison, a path having the smallest path-metric is stored as a most reliable path and the smallest path-metric is also stored for every each state. As a result of the comparison, the path having the smallest path-metric is called “survivor” and the path-metric of the survivor is called “survivor-metric”. For example, a path-metric of a path s [0,00]/s [1,00]/s [2,00] is compared with a path-metric of a path s [0,11]/s [1,01]/s [2,00], both of which reach the state s [2,00], a smaller path becomes the survivor.
(5) In the Viterbi algorithm, one survivor is finally selected among a plurality of paths reaching a certain state.
It is the Viterbi algorithm that caries out the above processes for each time. FIG. 21 shows a result from carrying out the Viterbi algorithm using the trellis of FIG. 19, and which shows the survivor which is finally obtained. A path having the smallest path-metric is selected as a final path among the survivors at a final time when the above processing is carried out for one frame. In FIG. 21, a path illustrated with a bold solid line and a bold dotted line is the final path. A signal sequence obtained from the final path is estimated as a transmitted signal.
The maximum-likelihood detection using this Viterbi algorithm is called “Maximum-Likelihood Sequence Estimation (MLSE)” which is stated in the paper “Maximum-likelihood sequence estimation of digital sequence in the presence of intersymbol interference”, G. D. Forney, Jr., IEEE Trans. Inform. Theory, vol.IT-18, No.3, pp. 363–378, May 1972. In this MLSE, if the memory length of the channel is L, the number of states of the Viterbi algorithm is 2L. In this way, the MLSE is a technique for deciding a value of a channel memory uniquely from the branch showing the state transition. FIG. 22 shows a model of a channel at L=5. When the MLSE is applied to this model, the number of states is 25, namely 32.
Although the above MLSE can decrease the number of processing steps compared with the maximum-likelihood detection apparatus of FIG. 16, the number of states increases exponentially according to the memory length L of the channel, so the number of processing is still enormous. A technique for solving this problem is called “Delayed decision-Feedback Sequence Estimation (DFSE)” which is described in a paper “Delayed decision-feedback sequence estimation”, A. Duel-Hallen et al., IEEE Trans. Commun., Vol. COM-37, 5, pp. 428–436, May 1989. The technique DFSE changes a part of the processing of the above mentioned MLSE.
An operation difference between the DFSE and the MLSE is briefly explained using FIG. 23. Since the number of channel memories of FIG. 23 equals five, the states have to be formed by the five memories to use all candidates. In this case, the number of states is 32 in the MLSE. Although a channel memory is 5 in DFSE, two memories are considered to make states. If states are formed from two memories, however, data for three symbols in the latter half are insufficient to use the memory of the channel. Therefore, the value obtained from the survivor is used as data for three symbols in the latter half of the survivor using the survivors connected to the state at the time (k−1). Applying such DFSE can reduce the number of states from 32 to 4.
A list output Viterbi algorithm which is an expansion of the Viterbi algorithm is described in a paper “A list-type reduced-constraint generalization of the Viterbi algorithm”, T. Hashimoto, IEEE Trans. Inform. Theory, vol. IT-33, 6, pp. 866–876, November 1987. The list output Viterbi algorithm generalizes the Viterbi algorithm as follows:                a memory length of the Viterbi algorithm is set shorter than the constraint length L of the channel or the code, and        the number of the survivors which is connected to each state is generalized to S instead of one.        
The former generalization is the same concept as that of DFSE. On the other hand, in the latter generalization, assuming two value transmission, S paths with the highest likelihood are selected among 2S entry paths. In this way, since this algorithm prepares the list based on the metric for each state, it is called a list output Viterbi algorithm instead of a general Viterbi algorithm.
The operation of the list output Viterbi algorithm is depicted in FIG. 24 when the number of states is four and the number S of survivors is two. Solid lines express survivors having the highest likelihood in each state and dotted lines describe survivors having the second higher likelihood in each state. In each state, two survivors are stored. For example, in a state “00” at time k, there are transitions from a state “00” and a state “01” at time (k−1). In a state “00” at time (k−1), there a two kinds of survivors from a state “00” and a state “01” at time (k−2). Similarly, in a state “01” at time (k−1), there are two kinds of survivors from a state “10” and a state “11” at time (k−2).
In a state “00” at time k, a path-metric is calculated for the above four paths and two higher paths among them are regarded as survivors. The survivors do not always selected from a state “00” at time (k−1) and other from a state “01” at time (k−1). There is a possibility that both paths are selected from a state “00” at a time (k−1) as shown both in the solid and dotted lines. In this case, states of these two survivors at time (k−1) are the same, but states at time (k−2) are different. Such flexibility is a specific feature of the list output Viterbi algorithm. To select two paths among four paths, it is necessary to arrange the paths in the order of path-metrics. In other words, sorting is necessary. Generally, a large operation amount is necessary for sorting, and a long processing time is necessary even if the algorithm is realized by a circuit.
FIG. 25 is a block diagram showing a comparison/selection processing in the ordinary Viterbi algorithm. The block diagram of FIG. 25 includes survivor input terminals 33, path-metric input terminals 34, a survivor output terminal 35, a path-metric output terminal 36, a selector B 39-2 and a comparator 100. The comparator 100 outputs the selection information to compare the values of two path-metrics and select a smaller one. The selector B 39-2 selects one of the two survivors and two path-metrics based on the above selection information.
FIG. 26 is a block diagram showing a comparison/selection processing in the list output Viterbi algorithm. In this block diagram, it is assumed that the list output Viterbi algorithm is a model of S=4 which means four path-metrics are selected from the eight path-metrics. The block diagram of FIG. 26 includes survivor input terminals 33, path-metric input terminals 34, survivor output terminals 35, path-metric output terminals 36, a selector A 39-1 and a sorting comparator 101. The sorting comparator 101 compares the eight path-metrics, arranges the results in an ascending order from a smallest one, and outputs the selection information which selects four smaller ones. The selector A 39-1 selects respective four survivors from eight survivors and eight path-metrics based on the above selection information.
FIG. 27 is a detailed construction of the sorting comparator 101 of FIG. 26. The block diagram of FIG. 27 includes a selection information output terminal 42, path-metric input terminals 104 and an 8/1 comparator 106-1. The 8/1 comparator 106-1 selects the smallest path-metric among eight path-metrics, and outputs an address for identifying this path-metric used for the selection information. Next, an 8/1 comparator 106-2 selects the second smaller path-metric among eight path-metrics. The 8/1 comparator 106-3 and an 8/1 comparator 106-4 operates in the same manner.
FIG. 28 is a detailed construction of the 8/1 comparator 106 of FIG. 27. The block diagram of FIG. 28 includes 2/1 comparators 40, a compulsory maximum value insertion circuit 102, compulsory maximum value insertion indicating input terminals 103, path-metric input terminals 104 and a path-metric selection information output terminal 105. The compulsory maximum value insertion circuit 102 receives the compulsory maximum value insertion indication signal and forcibly inserts the maximum value into a specific terminal of the path-metric. Then, the 2/1 comparators 40 searches the smallest path-metric by a tournament system and outputs the pathmetric selection information.
In case that a sorting from 2S to S is carried out under the survivor number is S, the total number of the 2/1 comparators is (2S2−S) and the number of the maximum stages of the 2/1 comparator is (log2 S+1) S. In other words, according to the increase of S, a circuit scale increases in proportion to 2S2 and a delay time increases in proportion to S log2S. Usually, a branch of square Euclidean distance expressed in the formula (3) is used for a metric value of the Viterbi algorithm. If a branch metric is Γk at time k, formula (4) is obtained.                               Γ          k                =                                                                                            r                  k                                -                                  r                  k                  e                                                                    2                    =                                                                                    r                  k                                -                                                      ∑                                          i                      =                      0                                        L                                    ⁢                                                            c                      i                                        ⁢                                          J                                              k                        -                        i                                                                                                                                2                                              (        4        )            
On the other hand, the following branch metric shown by formula (5) is suggested by the paper “Adaptive maximum-likelihood receiver for carrier-modulated data-transmission systems”, G. Ungerboeck, IEEE Trans. Commun., Vol.COM-22, No.5, pp. 624–636 May 1974.                               Γ          k                =                                            -              2                        ⁢                          Re              ⁡                              [                                                      y                    k                                    ⁢                                      I                    k                    *                                                  ]                                              +                                    x              0                        ⁢                                                                            I                  k                                                            2                                +                      2            ⁢                                                  ⁢                          Re              ⁡                              [                                                      ∑                                          s                      =                      1                                                        ⁢                                                            x                      s                                        ⁢                                          I                      k                      *                                        ⁢                                          I                                              k                        -                        s                                                                                            ]                                                                        (        5        )            
In the above, * denotes complex conjugation and yk and xs are defined as follows in the formulas (6) and (7), respectively.                               y          k                =                              ∑                          i              =              0                        L                    ⁢                                    c              i              *                        ⁢                          r                              k                +                i                                                                        (        6        )                                          x          s                =                              ∑                          i              =              0                                      L              -              s                                ⁢                                    c              i              *                        ⁢                          c                              i                +                s                                                                        (        7        )            
yk is equivalent to a matching filter output and xs is equivalent to an auto-correlation of the characteristic of the channel.
A square metric and a modified metric are equal if the perfect Viterbi algorithm (MLSE) is used. But if DFSE is used, their bit error rates (BER) are different. FIG. 29 shows BER characteristic when the tap coefficient of the characteristic of the channel is 1, 2, 0, 0, 0, 4, and the memory length L of the channel is five. FIG. 30 shows BER characteristic when the tap coefficient of the characteristic of the channel is 1, 0, 1, 0, 1, 0, and the memory length L of the channel is five. In FIG. 29 and in FIG. 30, Sqr. indicates a square metric and Mod. indicates a modified metric. Upon using DFSE, the most suitable metric is decided between the square metric and the modified metric according to the characteristic of the channel. In FIG. 30, the BER of the modified metric greatly deteriorates.
In a conventional sequence estimation method, there is a problem that a circuit scale increases in proportion to a power of the memory length of the channel according to the increase of the number of states, if MLSE is used in the channel having a long delay time. If the list output Viterbi algorithm is used and the number of the survivors S is more than two, a sorting processing is needed. Therefore, there occurs another problem that the circuit scale increases and the operational speed becomes slow since the processing volume increases according to the increase of elements of the sorting object.
Further, if the modified metric is used for calculating the branch metric, there is a problem that the characteristic remarkably deteriorates in the channel having a large time dispersion of an auto-correlation of the channel impulse response (CIR). If the square metric is used for calculating the branch metric, there is a problem that the characteristic remarkably deteriorates in the channel having a large time dispersion of a tap power of a channel impulse response (CIR).